// pages/test/test.js
import instance from '../../utils/http'
import { reqSwiperData } from '../../api/index'
import { testBehavior } from './behaviors'

Page({
    behaviors: [ testBehavior ],
    async chooseavatar(event) {
        console.log(event)
        // 目前获取的微信头像是临时路径
        // 临时路径是有失效时间的，在实际开发中，需要将临时的路径上传到公司的服务器
        const { avatarUrl } = event.detail

        const { data:avatar } = await instance.upload('/api/v1/upload', avatarUrl, 'file', { baseURL: 'http://43.163.234.83:20581' })
        this.setData({
            avatarUrl: 'http://43.163.234.83:20191/img/' + avatar.data
        })
        
        // this.setData({
        //     avatarUrl
        // })
        // wx.uploadFile({
        //   filePath: avatarUrl,
        //   name: 'file',
        //   url: 'http://43.163.234.83:20581/api/v1/upload',
        //   success: (res) => {
        //     res.data = JSON.parse(res.data)
        //     console.log(res)
        //     this.setData({
        //         avatarUrl: 'http://43.163.234.83:20191/img/' + res.data.data.data
        //     })
        //   }
        // })
    },
    async handler(){
        // 第一种调用方式，.then的方式进行调用
        // instance.request({
        //     url:"/mall-api/index/findBanner",
        //     method: "GET"
        // }).then((res) => {
        //     console.log(res)
        // })

        // 第二种调用方式，通过 await和async的方式进行调用
        // const res = await instance.request({
        //     url:"/mall-api/index/findBanner",
        //     method: "GET"
        // })

        // const res = await instance.get('/mall-api/index/findBanner', { data:'111' }, { timeout: 1000, isLoading: false })
        // const res = await instance.get('/mall-api/cart/getCartList').catch(err => {
        //     console.log(err)
        // })
        // console.log(res)

        const res = await reqSwiperData()
        console.log(res)
    },

    async handlerAll () {
        // 通过 async 和 await 方式同时发起多个请求
        // async 和 await 能够控制异步任务以同步的流程来执行

        // async 和 await 方式同时发起多个请求
        // 当第一个请求结束以后，才能够发起第二个请求
        // 在前一个请求结束以后，才能够发起下一个请求
        // 会造成请求的阻塞，从而影响页面的渲染速度
        // await instance.get("/mall-api/index/findBanner")
        // await instance.get("/mall-api/index/findCategory1")
        // await instance.get("/mall-api/index/findBanner")
        // await instance.get("/mall-api/index/findCategory1")

        // 通过 Promise.all 同时发起多个请求
        // Promise.all 能够将多个请求同时进行发送
        // Promise.all 能够将多个异步请求同时进行发送，也就时并行发送
        // 并不会造成请求的阻塞，从而不会影响页面的渲染速度
        // await Promise.all([
        //     instance.get("/mall-api/index/findBanner"),
        //     instance.get("/mall-api/index/findCategory1"),
        //     instance.get("/mall-api/index/findBanner"),
        //     instance.get("/mall-api/index/findCategory1"),
        // ])
        const res = await instance.all(
            instance.get("/mall-api/index/findBanner"),
            instance.get("/mall-api/index/findCategory1"),
            instance.get("/mall-api/index/findBanner"),
            instance.get("/mall-api/index/findCategory1"),
        )
        console.log(res)
    },
  /**
   * 页面的初始数据
   */
  data: {
    avatarUrl: '../../assets/avatar/jerry.png'
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})